package com.ukadas.eduko.modelo.mtm;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.ukadas.eduko.modelo.Asignatura;
import com.ukadas.eduko.modelo.Proyecto;

@Entity
@Table(name="asignaturas_proyectos")
public class AsignaturaProyecto {

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id_asignatura_proyecto")
	private int idAsignaturaProyecto;
	
	@ManyToOne
	@JoinColumn(name="id_asignatura", columnDefinition="id_asignatura")
	private Asignatura asignatura;
	@ManyToOne
	@JoinColumn(name="id_proyecto",columnDefinition="id_proyecto")
	private Proyecto proyecto;
	
	private Integer horas=null;
	private boolean evaluable=true;
	
	@ManyToOne
	@JoinColumn(name="id_area", columnDefinition="id_asignatura")
	private Asignatura area;
	
	@ManyToOne
	@JoinColumn(name="id_madre", columnDefinition="id_asignatura_proyecto")
	private AsignaturaProyecto madre;
	
	private boolean borrado=false;
	private String ob;

	AsignaturaProyecto() {
		super();
		// TODO Auto-generated constructor stub
	}

	AsignaturaProyecto(int idAsignaturaProyecto, Asignatura asignatura,
			Proyecto proyecto, Integer horas, boolean evaluable,
			Asignatura area, AsignaturaProyecto madre, boolean borrado,
			String ob) {
		super();
		this.idAsignaturaProyecto = idAsignaturaProyecto;
		this.asignatura = asignatura;
		this.proyecto = proyecto;
		this.horas = horas;
		this.evaluable = evaluable;
		this.area = area;
		this.madre = madre;
		this.borrado = borrado;
		this.ob = ob;
	}

	public int getIdAsignaturaProyecto() {
		return idAsignaturaProyecto;
	}

	public void setIdAsignaturaProyecto(int idAsignaturaProyecto) {
		this.idAsignaturaProyecto = idAsignaturaProyecto;
	}

	public Asignatura getAsignatura() {
		return asignatura;
	}

	public void setAsignatura(Asignatura asignatura) {
		this.asignatura = asignatura;
	}

	public Proyecto getProyecto() {
		return proyecto;
	}

	public void setProyecto(Proyecto proyecto) {
		this.proyecto = proyecto;
	}

	public Integer getHoras() {
		return horas;
	}

	public void setHoras(Integer horas) {
		this.horas = horas;
	}

	public boolean isEvaluable() {
		return evaluable;
	}

	public void setEvaluable(boolean evaluable) {
		this.evaluable = evaluable;
	}

	public Asignatura getArea() {
		return area;
	}

	public void setArea(Asignatura area) {
		this.area = area;
	}

	public AsignaturaProyecto getMadre() {
		return madre;
	}

	public void setMadre(AsignaturaProyecto madre) {
		this.madre = madre;
	}

	public boolean isBorrado() {
		return borrado;
	}

	public void setBorrado(boolean borrado) {
		this.borrado = borrado;
	}

	public String getOb() {
		return ob;
	}

	public void setOb(String ob) {
		this.ob = ob;
	}

	@Override
	public String toString() {
		return "AsignaturaProyecto [idAsignaturaProyecto="
				+ idAsignaturaProyecto + ", asignatura=" + asignatura
				+ ", proyecto=" + proyecto + ", horas=" + horas
				+ ", evaluable=" + evaluable + ", area=" + area + ", madre="
				+ madre + ", borrado=" + borrado + ", ob=" + ob + "]";
	}

}
